<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    


<script>

 console.log( a );// undefined
console.log( b );// undefined
console.log( c );// undefined
var a = 1, b = 2, c = 3;
// 等价于：
var a = 1;
var b = 2;
var c = 3; 




 console.log( a );// undefined
// console.log( b );// 报错
// console.log( c );// 报错
var a = b = c = 123;

// 等价于：
c = 123; // 隐式声明变量，没有声明提升的问题
b = c; // 隐式声明变量，没有声明提升的问题
a = b; // 给变量a赋值
var a; // 显式声明变量
 
 var a = b = c = 123;
 console.log( a );//123
 console.log( b );//123
 console.log( c );//123

var name = 5;// 修改window对象的name属性值
console.log( name + 20 );// '520'

var name = {a:123};// 修改window对象的name属性值
console.log( name );// '[object Object]'

var name = true;
console.log( name );// 'true'

var name = '海静';// 修改window对象的name属性值
console.log( name );// '海静'

function fn(){
    var name = 123;// 局部变量
    console.log( name );// 123
}
// fn();

// console.log( window );
// window对象有一个name属性，默认值为''
// name属性有一个特征：值只能为字符串类型，如果不是字符串值，自动转为字符串



function test(){
    abc = 123;// 隐式声明,全局变量
    var hehe = '呵呵';// 显式声明,局部变量
}
test();
console.log( abc );// 123
// console.log( hehe );// 报错

</script>
</body>
</html>